Nowadays, content management systems (CMSs) are mainly used in the Internet arena in order to manage the content of a Web site. Typically, a CMS consists of two elements: A content management application (CMA) and a content delivery application (CDA). The CMA element allows a content manager or author of the Web site to manage the creation, modification, and removal of content from the Web site without needing expertise. The CDA element uses and compiles that information to update the Web site. The features of a CMS system vary, but most include Web-based publishing, format management, revision control, and indexing, search, and retrieval.
A CMS system may also provide tools for one-to-one marketing. One-to-one marketing is the ability of a Web site to tailor its content and advertising to a user's specific characteristics using information provided by the user or gathered by the site (for example, a particular user's page sequence pattern). For example, if one visits a search engine and searches for digital cameras, the advertising banners will advertise businesses that sell digital cameras instead of businesses that sell garden products.
An additional feature of a CMS is indexing, search, and retrieval. A CMS system typically indexes all data within an organization. Individuals can then search for data using keywords, which the CMS system retrieves. Indexing is also known in file management systems thus allowing records to be accessed either sequentially, i.e. in the order they were entered, or randomly i.e. using an index. Each index defines a different ordering of the records. An employee database may have several indexes, based on the information being sought. For example, a name index may order employees alphabetically by last name, while a department index may order employees by their department. A key is specified in each index. For an alphabetical index of employee names, usually the last name field is used as the key.
A corresponding document management system is disclosed in U.S. Pat. No. 5,181,162 in which documents are represented as collections of logical components i.e. “objects” that may be combined and physically mapped onto a page-by-page layout. Stored objects are organized, accessed and manipulated through a database management system.
In the above and other known document or content management systems, documents are stored as discrete objects in an object-oriented computational environment. Stored objects are organized, accessed and manipulated through a database management system (DBMS). A DBMS is a program or part of a database product, like the IBM DB2 database management products of the present assignee, that lets one or more computer users create and access data in a database. The DBMS manages user requests and requests from other programs so that users and other programs are free from having to understand where the data is physically located on storage media and, in a multi-user system, who else may also be accessing the data. In handling user requests, the DBMS ensures the integrity of the data that is, making sure it continues to be accessible and is consistently organized as intended. It further ensures security making sure only those with access privileges can access the data.
The DBMS thus allows for a coherent, consistent encoding of object content, object attributes and inter-object relationships. At a minimum, objects contain “content”, that is, basic information-bearing constituents such as text, image, voice or graphics.
Objects may also contain so-called “attributes” specifying logical or physical relationships to other objects or to a document as a whole, characteristics relating to the appearance of the content, or access restrictions. In DBMSs, attributes are also used to describe a component of the database, such as a table or a field.
In general, an attribute typically is a property or characteristic of a data item like those attributes often used to assign access rights like ‘read-only’. In the well-known Hypertext Markup Language (HTML), an attribute is used as a characteristic of a page element, such as a font. An HTML user can set font attributes, such as size and color, to different values. In some programming languages an attribute is a property of an object or may be considered a container for the property of the object. For example, color might be an attribute of a text object, containing the value of “red.”
In using or programming computers, generally speaking, an attribute is a changeable property or characteristic of some component of a program that can be set to different values.
Objects may also be organized according to class, permitting multiple objects to inherit the same set of characteristics and attributes. For example, a document object may be sub-classified as a patent document, and, as a consequence, all patent documents may contain the same set of content objects.
Documents themselves can be represented as objects and collected into bundles referred to generally as “folders”. These folders, too, can be represented as objects.
The above described document or content management systems use distinct index classes for different kinds of documents and folders. They offer a way to search for attributes that actually exist in a searched index class. Although these systems allow for linking documents to each other, these links are not used during the search process.
In addition, the known systems do not allow for parameterizing of the underlying document management system, e.g. to supplement or extend the system with further attributes or index classes, in particular during run-time, without need to alter or change the underlying document management system itself.
Accordingly, what is needed is a system and method for overcoming the above-identified problems. The present invention addresses such a need.